.\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl)
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" <http://www.gnu.org/licenses/>.
.\" %%%LICENSE_END
.\"
.TH AIO_RETURN 3 2021-03-22  "" "Linux Programmer's Manual"
.SH NAME
aio_return \- get return status of asynchronous I/O operation
.SH SYNOPSIS
.nf
.B "#include <aio.h>"
.PP
.BI "ssize_t aio_return(struct aiocb *" aiocbp );
.PP
Link with \fI\-lrt\fP.
.fi
.SH DESCRIPTION
The
.BR aio_return ()
function returns the final return status for the asynchronous I/O request
with control block pointed to by
.IR aiocbp .
(See
.BR aio (7)
for a description of the
.I aiocb
structure.)
.PP
This function should be called only once for any given request, after
.BR aio_error (3)
returns something other than
.BR EINPROGRESS .
.SH RETURN VALUE
If the asynchronous I/O operation has completed, this function returns
the value that would have been returned in case of a synchronous
.BR read (2),
.BR write (2),
.BR fsync (2),
or
.BR fdatasync (2),
call.
On error, \-1 is returned, and \fIerrno\fP is set to indicate the error.
.PP
If the asynchronous I/O operation has not yet completed,
the return value and effect of
.BR aio_return ()
are undefined.
.SH ERRORS
.TP
.B EINVAL
.I aiocbp
does not point at a control block for an asynchronous I/O request
of which the return status has not been retrieved yet.
.TP
.B ENOSYS
.BR aio_return ()
is not implemented.
.SH VERSIONS
The
.BR aio_return ()
function is available since glibc 2.1.
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.ad l
.nh
.TS
allbox;
lbx lb lb
l l l.
Interface	Attribute	Value
T{
.BR aio_return ()
T}	Thread safety	MT-Safe
.TE
.hy
.ad
.sp 1
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008.
.SH EXAMPLES
See
.BR aio (7).
.SH SEE ALSO
.BR aio_cancel (3),
.BR aio_error (3),
.BR aio_fsync (3),
.BR aio_read (3),
.BR aio_suspend (3),
.BR aio_write (3),
.BR lio_listio (3),
.BR aio (7)
.SH COLOPHON
This page is part of release 5.13 of the Linux
.I man-pages
project.
A description of the project,
information about reporting bugs,
and the latest version of this page,
can be found at
\%https://www.kernel.org/doc/man\-pages/.
